In a processor, caches may be used to hold copies of data from memory in order to shorten the latency of subsequent accesses to memory. In some scenarios, caches are shared across multiple entities in a processor, or processing system, that includes several integrated components. The caches may be used to cache data both from memory-mapped input/output devices (MMIO), such as data from stored on a hard disk or in a basic input output system (BIOS) read only memory (ROM), as well as from random access memory (RAM). During caching, a component or logic used to manage the caching may be referred to herein as a caching agent. In some scenarios, a caching agent may be subject to potential deadlock issues as it arbitrates between caching requests issued from various integrated components on the processor.